(function(f){var i="keypad";function k(){this.BS="\x08";this.DEL="\x7F";this._curInst=null;this._disabledFields=[];this._keypadShowing=false;this.regional=[];this.regional[""]={buttonText:"...",buttonStatus:"Open the virtual keyboard",closeText:" ",closeStatus:"Close the virtual keyboard",clearText:"Clear",clearStatus:"Erase all the text",backText:"Backspace",backStatus:"Erase the previous character",shiftText:"Caps Lock",shiftStatus:"Toggle upper/lower case characters",alphabeticLayout:this.qwertyAlphabetic,fullLayout:this.qwertyLayout,isAlphabetic:this.isAlphabetic,isNumeric:this.isNumeric,isRTL:false};this._defaults={showOn:"focus",buttonImage:"",buttonImageOnly:false,showAnim:"show",showOptions:{},duration:"normal",appendText:"",keypadClass:"",prompt:"",layout:["123"+this.CLOSE,"456"+this.CLEAR,"789"+this.BACK,this.SPACE+"0"],separator:"",target:null,keypadOnly:true,randomiseAlphabetic:false,randomiseNumeric:false,randomiseOther:false,randomiseAll:false,beforeShow:null,onKeypress:null,onClose:null};f.extend(this._defaults,this.regional[""]);this.mainDiv=f('
')}var e="\x00";var a="\x01";var h="\x02";var j="\x03";var b="\x04";var g="\x05";var c="\x06";f.extend(k.prototype,{CLOSE:e,CLEAR:a,BACK:h,SHIFT:j,SPACE_BAR:b,SPACE:g,HALF_SPACE:c,qwertyAlphabetic:["qwertyuiop","asdfghjkl","zxcvbnm"],qwertyLayout:["!@#$%^&*()_="+c+g+e,c+"`~[]{}<>\\|/"+g+"789","qwertyuiop'\""+c+"456",c+"asdfghjkl;:"+g+"123",g+"zxcvbnm,.?"+g+c+"-0+",j+c+b+c+h+c+a],markerClassName:"hasKeypad",_mainDivId:"keypad-div",_inlineClass:"keypad-inline",_appendClass:"keypad-append",_triggerClass:"keypad-trigger",_disableClass:"keypad-disabled",_inlineEntryClass:"keypad-keyentry",_coverClass:"keypad-cover",setDefaults:function(l){d(this._defaults,l||{});return this},_attachKeypad:function(o,l){var n=(o.nodeName.toLowerCase()!="input"&&o.nodeName.toLowerCase()!="textarea");var m={_inline:n,_mainDiv:(n?f('
'):f.keypad.mainDiv),ucase:false};m.settings=f.extend({},l||{});this._setInput(o,m);this._connectKeypad(o,m);if(n){f(o).append(m._mainDiv).bind("click.keypad",function(){m._input.focus()});this._updateKeypad(m)}},_setInput:function(m,l){l._input=f(!l._inline?m:this._get(l,"target")||' ');if(l._inline){m=f(m);m.find("input").remove();if(!this._get(l,"target")){m.append(l._input)}}},_connectKeypad:function(q,p){var r=f(q);if(r.hasClass(this.markerClassName)){return}var o=this._get(p,"appendText");var l=this._get(p,"isRTL");if(o){r[l?"before":"after"](''+o+" ")}if(!p._inline){var t=this._get(p,"showOn");if(t=="focus"||t=="both"){r.focus(this._showKeypad).keydown(this._doKeyDown)}if(t=="button"||t=="both"){var s=this._get(p,"buttonText");var n=this._get(p,"buttonStatus");var u=this._get(p,"buttonImage");var m=f(this._get(p,"buttonImageOnly")?f(' '):f(' ').html(u==""?s:f(' ')));r[l?"before":"after"](m);m.addClass(this._triggerClass).click(function(){if(f.keypad._keypadShowing&&f.keypad._lastField==q){f.keypad._hideKeypad()}else{f.keypad._showKeypad(q)}return false})}}p.saveReadonly=r.attr("readonly");r.addClass(this.markerClassName).attr("readonly",(this._get(p,"keypadOnly")?"readonly":"")).bind("setData.keypad",function(w,v,x){p.settings[v]=x}).bind("getData.keypad",function(w,v){return this._get(p,v)});f.data(q,i,p)},_destroyKeypad:function(n){var l=f(n);if(!l.hasClass(this.markerClassName)){return}var m=f.data(n,i);if(this._curInst==m){this._hideKeypad()}l.siblings("."+this._appendClass).remove().end().siblings("."+this._triggerClass).remove().end().prev("."+this._inlineEntryClass).remove();l.empty().unbind("focus",this._showKeypad).removeClass(this.markerClassName).attr("readonly",m.saveReadonly);f.removeData(m._input[0],i);f.removeData(n,i)},_enableKeypad:function(n){var m=f(n);if(!m.hasClass(this.markerClassName)){return}var o=n.nodeName.toLowerCase();if(o=="input"||o=="textarea"){n.disabled=false;m.siblings("button."+this._triggerClass).each(function(){this.disabled=false}).end().siblings("img."+this._triggerClass).css({opacity:"1.0",cursor:""})}else{if(o=="div"||o=="span"){m.children("."+this._disableClass).remove();var l=f.data(n,i);l._mainDiv.find("button").attr("disabled","")}}this._disabledFields=f.map(this._disabledFields,function(p){return(p==n?null:p)})},_disableKeypad:function(o){var n=f(o);if(!n.hasClass(this.markerClassName)){return}var r=o.nodeName.toLowerCase();if(r=="input"||r=="textarea"){o.disabled=true;n.siblings("button."+this._triggerClass).each(function(){this.disabled=true}).end().siblings("img."+this._triggerClass).css({opacity:"0.5",cursor:"default"})}else{if(r=="div"||r=="span"){var m=n.children("."+this._inlineClass);var q=m.offset();var p={left:0,top:0};m.parents().each(function(){if(f(this).css("position")=="relative"){p=f(this).offset();return false}});n.prepend('
');var l=f.data(o,i);l._mainDiv.find("button").attr("disabled","disabled")}}this._disabledFields=f.map(this._disabledFields,function(s){return(s==o?null:s)});this._disabledFields[this._disabledFields.length]=o},_isDisabledKeypad:function(l){return(l&&f.inArray(l,this._disabledFields)>-1)},_changeKeypad:function(p,l,o){var m=l||{};if(typeof l=="string"){m={};m[l]=o}var n=f.data(p,i);if(n){if(this._curInst==n){this._hideKeypad()}d(n.settings,m);this._setInput(f(p),n);this._updateKeypad(n)}},_showKeypad:function(q){q=q.target||q;if(f.keypad._isDisabledKeypad(q)||f.keypad._lastField==q){return}var n=f.data(q,i);f.keypad._hideKeypad(null,"");f.keypad._lastField=q;f.keypad._pos=f.keypad._findPos(q);f.keypad._pos[1]+=q.offsetHeight;var p=false;f(q).parents().each(function(){p|=f(this).css("position")=="fixed";return !p});if(p&&f.browser.opera){f.keypad._pos[0]-=document.documentElement.scrollLeft;f.keypad._pos[1]-=document.documentElement.scrollTop}var r={left:f.keypad._pos[0],top:f.keypad._pos[1]};f.keypad._pos=null;n._mainDiv.css({position:"absolute",display:"block",top:"-1000px",width:(f.browser.opera?"1000px":"auto")});f.keypad._updateKeypad(n);r=f.keypad._checkOffset(n,r,p);n._mainDiv.css({position:(p?"fixed":"absolute"),display:"none",left:r.left+"px",top:322+"px"});var l=f.keypad._get(n,"showAnim");var o=f.keypad._get(n,"duration");o=(o=="normal"&&f.ui&&f.ui.version>="1.8"?"_default":o);var m=function(){f.keypad._keypadShowing=true;var s=f.keypad._getBorders(n._mainDiv);n._mainDiv.find("iframe."+f.keypad._coverClass).css({left:-s[0],top:-s[1],width:n._mainDiv.outerWidth(),height:n._mainDiv.outerHeight()})};if(f.effects&&f.effects[l]){n._mainDiv.show(l,f.keypad._get(n,"showOptions"),o,m)}else{n._mainDiv[l||"show"]((l?o:""),m)}if(!l){m()}if(n._input[0].type!="hidden"){n._input[0].focus()}f.keypad._curInst=n},_updateKeypad:function(l){var m=this._getBorders(l._mainDiv);l._mainDiv.empty().append(this._generateHTML(l)).find("iframe."+this._coverClass).css({left:-m[0],top:-m[1],width:l._mainDiv.outerWidth(),height:l._mainDiv.outerHeight()});l._mainDiv.removeClass().addClass(this._get(l,"keypadClass")+(this._get(l,"isRTL")?" keypad-rtl":"")+(l._inline?this._inlineClass:""));var n=this._get(l,"beforeShow");if(n){n.apply((l._input?l._input[0]:null),[l._mainDiv,l])}},_getBorders:function(l){var m=function(o){var n=(f.browser.msie?1:0);return{thin:1+n,medium:3+n,thick:5+n}[o]||o};return[parseFloat(m(l.css("border-left-width"))),parseFloat(m(l.css("border-top-width")))]},_checkOffset:function(o,n,m){var q=o._input?this._findPos(o._input[0]):null;var t=window.innerWidth||document.documentElement.clientWidth;var p=window.innerHeight||document.documentElement.clientHeight;var s=document.documentElement.scrollLeft||document.body.scrollLeft;var r=document.documentElement.scrollTop||document.body.scrollTop;if((f.browser.msie&&parseInt(f.browser.version,10)<7)||f.browser.opera){var l=0;o._mainDiv.find(":not(div,iframe)").each(function(){l=Math.max(l,this.offsetLeft+f(this).outerWidth()+parseInt(f(this).css("margin-right"),10))});o._mainDiv.css("width",l)}if(this._get(o,"isRTL")||(n.left+o._mainDiv.outerWidth()-s)>t){n.left=Math.max((m?0:s),q[0]+(o._input?o._input.outerWidth():0)-(m?s:0)-o._mainDiv.outerWidth()-(m&&f.browser.opera?document.documentElement.scrollLeft:0))}else{n.left-=(m?s:0)}if((n.top+o._mainDiv.outerHeight()-r)>p){n.top=Math.max((m?0:r),q[1]-(m?r:0)-o._mainDiv.outerHeight()-(m&&f.browser.opera?document.documentElement.scrollTop:0))}else{n.top-=(m?r:0)}return n},_findPos:function(m){while(m&&(m.type=="hidden"||m.nodeType!=1)){m=m.nextSibling}var l=f(m).offset();return[l.left,l.top]},_hideKeypad:function(p,o){var n=this._curInst;if(!n||(p&&n!=f.data(p,i))){return}if(this._keypadShowing){o=(o!=null?o:this._get(n,"duration"));o=(o=="normal"&&f.ui&&f.ui.version>="1.8"?"_default":o);var m=this._get(n,"showAnim");if(f.effects&&f.effects[m]){n._mainDiv.hide(m,this._get(n,"showOptions"),o)}else{n._mainDiv[(m=="slideDown"?"slideUp":(m=="fadeIn"?"fadeOut":"hide"))](m?o:"")}}var l=this._get(n,"onClose");if(l){l.apply((n._input?n._input[0]:null),[n._input.val(),n])}if(this._keypadShowing){this._keypadShowing=false;this._lastField=null}if(n._inline){n._input.val("")}this._curInst=null},_doKeyDown:function(l){if(l.keyCode==9){f.keypad.mainDiv.stop(true,true);f.keypad._hideKeypad(null,"")}},_checkExternalClick:function(l){if(!f.keypad._curInst){return}var m=f(l.target);if(!m.parents().andSelf().is("#"+f.keypad._mainDivId)&&!m.hasClass(f.keypad.markerClassName)&&!m.parents().andSelf().hasClass(f.keypad._triggerClass)&&f.keypad._keypadShowing){f.keypad._hideKeypad(null,"")}},_shiftKeypad:function(l){l.ucase=!l.ucase;this._updateKeypad(l);l._input.focus()},_clearValue:function(l){this._setValue(l,"",0);this._notifyKeypress(l,f.keypad.DEL)},_backValue:function(n){var o=n._input[0];var m=n._input.val();var l=[m.length,m.length];if(o.setSelectionRange){l=(n._input.attr("readonly")||n._input.attr("disabled")?l:[o.selectionStart,o.selectionEnd])}else{if(o.createTextRange){l=(n._input.attr("readonly")||n._input.attr("disabled")?l:this._getIERange(o))}}this._setValue(n,(m.length==0?"":m.substr(0,l[0]-1)+m.substr(l[1])),l[0]-1);this._notifyKeypress(n,f.keypad.BS)},_selectValue:function(m,l){this.insertValue(m._input[0],l);this._setValue(m,m._input.val());this._notifyKeypress(m,l)},insertValue:function(m,n){m=(m.jquery?m:f(m));var p=m[0];var o=m.val();var l=[o.length,o.length];if(p.setSelectionRange){l=(m.attr("readonly")||m.attr("disabled")?l:[p.selectionStart,p.selectionEnd])}else{if(p.createTextRange){l=(m.attr("readonly")||m.attr("disabled")?l:this._getIERange(p))}}m.val(o.substr(0,l[0])+n+o.substr(l[1]));pos=l[0]+n.length;if(m.css("display")!="none"){m.focus()}if(p.setSelectionRange){if(m.css("display")!="none"){p.setSelectionRange(pos,pos)}}else{if(p.createTextRange){var l=p.createTextRange();l.move("character",pos);l.select()}}},_getIERange:function(o){o.focus();var q=document.selection.createRange().duplicate();var l=this._getIETextRange(o);l.setEndPoint("EndToStart",q);var m=function(r){var t=r.text;var s=t;var u=false;while(true){if(r.compareEndPoints("StartToEnd",r)==0){break}else{r.moveEnd("character",-1);if(r.text==t){s+="\r\n"}else{break}}}return s};var n=m(l);var p=m(q);return[n.length,n.length+p.length]},_getIETextRange:function(n){var m=(n.nodeName.toLowerCase()=="input");var l=(m?n.createTextRange():document.body.createTextRange());if(!m){l.moveToElementText(n)}return l},_setValue:function(n,m){var l=n._input.attr("maxlength");if(l>-1){m=m.substr(0,l)}n._input.val(m);if(!this._get(n,"onKeypress")){n._input.trigger("change")}},_notifyKeypress:function(n,l){var m=this._get(n,"onKeypress");if(m){m.apply((n._input?n._input[0]:null),[l,n._input.val(),n])}},_get:function(m,l){return m.settings[l]!==undefined?m.settings[l]:this._defaults[l]},_generateHTML:function(q){var l=this._get(q,"isRTL");var m=this._get(q,"prompt");var p=this._get(q,"separator");var r=(!m?"":''+m+"
");var s=this._randomiseLayout(q);for(var o=0;o';var u=s[o].split(p);for(var n=0;n':(u[n]==this.HALF_SPACE?'
':''+(u[n]==this.CLEAR?this._get(q,"clearText"):(u[n]==this.BACK?this._get(q,"backText"):(u[n]==this.CLOSE?this._get(q,"closeText"):(u[n]==this.SHIFT?this._get(q,"shiftText"):(u[n]==this.SPACE_BAR?" ":(u[n]==" "?" ":u[n]))))))+" "))}r+=""}r+='
'+(!q._inline&&f.browser.msie&&parseInt(f.browser.version,10)<7?'':"");r=f(r);var t=q;r.find("button").mousedown(function(){f(this).addClass("keypad-key-down")}).mouseup(function(){f(this).removeClass("keypad-key-down")}).mouseout(function(){f(this).removeClass("keypad-key-down")}).filter(".keypad-clear").click(function(){f.keypad._clearValue(t)}).end().filter(".keypad-back").click(function(){f.keypad._backValue(t)}).end().filter(".keypad-close").click(function(){f.keypad._curInst=(t._inline?t:f.keypad._curInst);f.keypad._hideKeypad()}).end().filter(".keypad-shift").click(function(){f.keypad._shiftKeypad(t)}).end().not(".keypad-clear").not(".keypad-back").not(".keypad-close").not(".keypad-shift").click(function(){f.keypad._selectValue(t,f(this).text())});return r},_randomiseLayout:function(p){var l=this._get(p,"randomiseNumeric");var x=this._get(p,"randomiseAlphabetic");var A=this._get(p,"randomiseOther");var m=this._get(p,"randomiseAll");var C=this._get(p,"layout");if(!l&&!x&&!A&&!m){return C}var B=this._get(p,"isNumeric");var t=this._get(p,"isAlphabetic");var q=this._get(p,"separator");var s=[];var r=[];var D=[];var F=[];for(var z=0;z="A"&&l<="Z")||(l>="a"&&l<="z")},isNumeric:function(l){return(l>="0"&&l<="9")},_shuffle:function(l){for(var n=l.length-1;n>0;n--){var m=Math.floor(Math.random()*l.length);var o=l[n];l[n]=l[m];l[m]=o}}});function d(n,m){f.extend(n,m);for(var l in m){if(m[l]==null||m[l]==undefined){n[l]=m[l]}}return n}f.fn.keypad=function(m){var l=Array.prototype.slice.call(arguments,1);if(m=="isDisabled"){return f.keypad["_"+m+"Keypad"].apply(f.keypad,[this[0]].concat(l))}return this.each(function(){typeof m=="string"?f.keypad["_"+m+"Keypad"].apply(f.keypad,[this].concat(l)):f.keypad._attachKeypad(this,m)})};f.keypad=new k();f(function(){f(document.body).append(f.keypad.mainDiv).mousedown(f.keypad._checkExternalClick)})})(jQuery);